package com.pianzhu.blockchainemr.pojo;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;

/**
 * 就诊记录表
 * 对应数据库表: emr_med_visit
 * 数据库: blockchain_emr
 */
@Data
public class EmrMedVisit {

    /**
     * 就诊ID(V+日期+序列号)
     * 字段类型: varchar(20)
     * 主键
     */
    private String visitId;

    /**
     * 患者ID
     * 字段类型: varchar(18)
     * 外键: emr_pat_master (patient_id)
     */
    private String patientId;

    /**
     * 就诊类型: 01-门诊,02-住院
     * 字段类型: enum('01', '02')
     */
    private String visitType;

    /**
     * 就诊医院id
     * 字段类型: varchar(20)
     * 数据库字段: hospital_id
     */
    private String hospitalId;

    /**
     * 科室代码
     * 字段类型: varchar(10)
     * 外键: emr_dept_dict (dept_code)
     */
    private String deptCode;

    /**
     * 主治医生
     * 字段类型: bigint
     */
    private Long attendingDoctorId;

    /**
     * 就诊时间/入院时间
     * 字段类型: datetime
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime admissionTime;

    /**
     * 出院时间
     * 字段类型: datetime
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime dischargeTime;

    /**
     * 主诉
     * 字段类型: varchar(500)
     */
    private String chiefComplaint;

    /**
     * 初步诊断
     * 字段类型: varchar(500)
     */
    private String initialDiagnosis;

    /**
     * 初步诊断ICD编码
     * 字段类型: varchar(20)
     * 外键: emr_disease_dict (disease_code)
     */
    private String initialDiagnosisCode;

    /**
     * 最终诊断
     * 字段类型: varchar(500)
     */
    private String finalDiagnosis;

    /**
     * 最终诊断ICD编码
     * 字段类型: varchar(20)
     * 外键: emr_disease_dict (disease_code)
     */
    private String finalDiagnosisCode;

    /**
     * 就诊状态: 1-就诊中,2-已出院,3-已转院,4-死亡,5-取消
     * 字段类型: enum('1', '2', '3', '4', '5')
     */
    private String visitStatus;

    /**
     * 创建时间
     * 字段类型: datetime
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /**
     * 创建者ID
     * 字段类型: bigint
     */
    private Long creatorId;

    /**
     * 结束时间
     * 字段类型: datetime
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

}